Fortran REAL16: improve detection and wiring across OMPI/OPAL #13612
+537
−354
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Probe REAL*16 against _Float128 first, then __float128, and finally _Quad (Intel) to find a C type with matching bit representation. Ensure OPAL’s FLOAT12/FLOAT16 constructors are always available and map OMPI/MPI REAL16 based on architecture/language specifics.
Wire FLOAT128 types through copy/pack/unpack paths and hook REAL16 into the base MPI_Op table. This enables software-only reductions for REAL16 for as long as the Fortran type has a C equivalent.
Fixes #13564